HTMLify
Next Greater Element.java
Views: 1 | Author: cody
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | // Next Greater Element import java.util.*; import java.lang.*; import java.io.*; class GFG { public static void main (String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int t = Integer.parseInt(br.readLine().trim()); while(t-->0){ int n = Integer.parseInt(br.readLine().trim()); String inputLine[] = br.readLine().trim().split(" "); long[] arr = new long[n]; for(int i=0; i<n; i++)arr[i]=Long.parseLong(inputLine[i]); long[] res = new Solution().nextLargerElement(arr, n); for (int i = 0; i < n; i++) System.out.print(res[i] + " "); System.out.println(); } } } class Solution { //Function to find the next greater element for each element of the array. public static long[] nextLargerElement(long[] arr, int n) { // Your code here long[] ans=new long[n]; Arrays.fill(ans,-1); Stack<Integer> st=new Stack<>(); for(int i=0;i<n;i++){ while(st.size()>0 && arr[i]>arr[st.peek()]){ int tbf=st.pop(); ans[tbf]=arr[i]; } st.push(i); } return ans; } } |